package cn.arnold.leetcode;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
 * @author Arnold-Xiang
 * @Info [[1, 2, 3], [-4,2,6],[-4,1,3]]排序：先按第一个数排序，一样则按第二个数排序，以此类推
 */
public class TwoDimSort {
    public static void main(String[] args) {
        List<List<Integer>> nums = new ArrayList<>();
        List<List<Integer>> res = new ArrayList<>();
        List<Integer> n1 = new ArrayList<>();
        n1.add(1);
        n1.add(2);
        n1.add(3);
        List<Integer> n2 = new ArrayList<>();
        n2.add(-4);
        n2.add(1);
        n2.add(6);
        List<Integer> n3 = new ArrayList<>();
        n3.add(-4);
        n3.add(1);
        n3.add(3);
        nums.add(n1);
        nums.add(n2);
        nums.add(n3);
        res = listSort(nums);
        for (List<Integer> e : res) {
            System.out.println(e);
        }
    }

    //集合版
    public static List<List<Integer>> listSort(List<List<Integer>> nums) {
        int length = nums.size();
        for (int i = 0; i < length; i++) {
            for (int j = i + 1; j < length; j++) {
                Integer temp1 = nums.get(i).get(0);
                Integer temp2 = nums.get(j).get(0);
                Integer temp3 = nums.get(i).get(1);
                Integer temp4 = nums.get(j).get(1);
                Integer temp5 = nums.get(i).get(2);
                Integer temp6 = nums.get(j).get(2);
                if (temp1 > temp2) {
                    /*List<Integer> temp = new ArrayList<>(nums.get(i));
                    nums.set(i, nums.get(j));
                    nums.set(j, temp);*/
                    Collections.swap(nums,i,j);
                }
                if (temp1 == temp2) {
                    if (temp3 > temp4) {
                        Collections.swap(nums,i,j);
                    }
                    if (temp3 == temp4){
                        if (temp5 > temp6){
                            Collections.swap(nums,i,j);
                        }
                    }
                }
            }
        }
        return nums;
    }
}
